1. Field of the Invention
The present invention relates to image processing and, more particularly, to the selective scaling of objects in raster images.
2. Description of the Prior Art
As is well-known in the image processing technology, a continuous tone image, such as a photograph, may be digitized by a raster scanner to produce a bit-mapped image comprising a number of individual pixels. The raster image may then be stored in a non-volatile memory and subsequently presented to a human on a video display.
A composite raster image may be produced by simultaneously displaying a number of raster objects. Each object in the image is characterized by a prestored digital picture. For example, an arcade game may have a prestored raster image of a race car. Since more than one car is displayed, a number of car objects may refer to the same picture, or image data. It should be recognized that pictures are characterized and displayed as non-motion, or fixed, objects, or as motion objects that can move on the video display. The difference is in the degree of difficulty required to reduce or enlarge an object. For instance, if a motion object is moving away from a user, then the size of the object must be reduced multiple times in real-time.
In some present arcade games, a motion object is prescaled a number of times, and the set of varying scale objects is stored in a large memory. The individual stored objects are then sequentially selected and displayed to produce a visual simulation of the object moving farther away from the viewer. For example, in an arcade game of horseshoes having a set of user controls and a video display, a horseshoe is "thrown" at a metal stake. As the horseshoe (i.e., a motion object) is visually represented as traveling away from the user towards the metal stake in the background, as many as a hundred individually stored objects representing horseshoes of varying sizes are retrieved from a memory and displayed over a period of time to simulate the changing position of the horseshoe. Thus, the game provides the appearance of a shrinking horseshoe as its distance increases from the perspective of the user.
However, these systems using prescaled objects require a costly memory and they are limited in the number of motion objects that can be scaled. Existing computer systems, such as those used for computer-aided design and manufacturing (CAD/CAM), include central processors that, among other tasks, grow and shrink objects in real-time. Nonetheless, the known CAD/CAM systems that provide real-time scaling dedicate sizeable computer resources to the scaling process. The computer resources used in the CAD/CAM systems are impracticable in the context of an arcade game which is further constrained by cost and space. Two recent lower-cost approaches to the real-time scaling of raster objects in arcade games are disclosed in the patents to Nakamura, et al. (U.S. Pat. No. 4,834,374) and Murauchi (U.S. Pat. No. 4,754,270).
The Nakamura, et al., system stores coordinate pixel data for each object in an object image memory. The coordinate pixel data is then vertically and horizontally scaled according to information stored in an object data memory. The vertical scaling is controlled by a line converter which is driven by a line count signal indicating the vertical position of raster scanning on a cathode ray tube (CRT). Horizontal scaling is realized by a rate multiplier that time scales a clock pulse to output a write-in trigger pulse to an address counter which thereby addresses the writing of data into a buffer memory.
The patent to Murauchi discloses a circuit to scale character objects on a raster display. So-called zoom address generators are used to scale vertical and horizontal dimensions. To accomplish the scaling described by Murauchi, the address generators rely on triggering adders during the vertical and horizontal blanking intervals defined in a composite video signal (i.e., the periods when the current to the electron gun is cut-off thereby rendering the retrace on the picture tube invisible).
Nakamura, et al., and Murauchi store each object as a fixed set of pixel coordinate values. Storage of objects in this manner is wasteful of memory space and it would be desirable to encode each object in a compressed format so as to conserve memory. In addition, in these prior art systems, background colors to the right of a picture must be stored which is an inefficient use of a graphics memory. Moreover, these prior art systems rely on the timing of the composite video signal for scaling and, therefore, they are limited in their processing ability. It would be an advantage to accomplish object scaling asynchronously with respect to the timing of the video signal so that more sophisticated processing on objects could be performed. Furthermore, these prior art systems do not scale an object about a reference point without the interaction of a host processor.
Consequently, a need presently exists for a scaling processor for raster images that scales objects in real-time, consumes very little memory by storing only one representation of a compressed object, requires a relatively small expense to manufacture, provides flexible processing that does not depend for timing on a video signal.